from P5Project.settings import SECRET_KEY
import jwt

import datetime
from django.utils import timezone
class MyJwt():
    def __init__(self):
        self.secret = SECRET_KEY

    # 加密
    def jwt_encode(self, data, exp=None):
        """
        对数据进行 JWT 编码
        :param data: 要编码的数据
        :param exp: token 的过期时间（秒）
        :return: 编码后的 JWT token
        """
        if exp:
            import datetime
            from django.utils import timezone
            data['exp'] = timezone.now() + datetime.timedelta(seconds=exp)
        return jwt.encode(data, self.secret, algorithm="HS256")

        # 解密

    def jwt_decode(self, token, exp=None):
        """
        对 JWT token 进行解码
        :param token: 要解码的 JWT token
        :return: 解码后的数据
        """
        try:
            if exp:
                data['exp'] = timezone.now() + datetime.timedelta(seconds=exp)
            return jwt.decode(token, self.secret, algorithms=["HS256"])
        except jwt.ExpiredSignatureError:
            # 处理 token 过期的情况
            return None
        except jwt.InvalidTokenError:
            # 处理无效 token 的情况
            return None



jwtweb = MyJwt()
